package com.ruoyi.course.domain;

import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import java.util.ArrayList;
import java.util.List;

/**
 * 课程详情管理对象 courses
 * 
 * @author gzq
 * @date 2025-08-12
 */

public class Courses extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 课程唯一ID */

    private Integer id;

    /** 作者ID（关联users表） */
    private Integer userId;

    /** 课程标题 */
    @Excel(name = "课程标题")
    private String title;

    /** 课程简介 */
    @Excel(name = "课程简介")
    private String description;

    /** 课程评分（如9.8分） */
    @Excel(name = "课程评分", readConverterExp = "如=9.8分")
    private Double score;

    /** 参与人数 */
    @Excel(name = "参与人数")
    private Integer participantCount;

    /** 课程总时长 */
    @Excel(name = "课程总时长")
    private String totalDuration;

    /** 视频总节数 */
    @Excel(name = "视频总节数")
    private String totalVideos;

    /** 状态（0-正常，1-下架） */
    @Excel(name = "状态", readConverterExp = "0=-正常，1-下架")
    private Integer status;

    /** 是否删除：0正常 1删除 */
    @Excel(name = "是否删除：0正常 1删除")
    private Integer del;
    @Excel(name = "图片表")
    private List<CourseImages> images = new ArrayList<>();
    @Excel(name = "视频表")
    private List<CourseVideos> videos = new ArrayList<>();
    @Excel(name = "评论表")
    private List<Comments> comments = new ArrayList<>();
    @Excel(name = "用户表")
    private Users users;
    @Excel(name = "用户课程评分表")
    private List<UserCourseScore> userCourseScore;

    @Override
    public String toString() {
        return "Courses{" +
                "id=" + id +
                ", userId=" + userId +
                ", title='" + title + '\'' +
                ", description='" + description + '\'' +
                ", score=" + score +
                ", participantCount=" + participantCount +
                ", totalDuration='" + totalDuration + '\'' +
                ", totalVideos='" + totalVideos + '\'' +
                ", status=" + status +
                ", del=" + del +
                ", images=" + images +
                ", videos=" + videos +
                ", comments=" + comments +
                ", users=" + users +
                ", userCourseScore=" + userCourseScore +
                '}';
    }

    public List<UserCourseScore> getUserCourseScore() {
        return userCourseScore;
    }

    public void setUserCourseScore(List<UserCourseScore> userCourseScore) {
        this.userCourseScore = userCourseScore;
    }


    public Users getUsers() {
        return users;
    }

    public void setUsers(Users users) {
        this.users = users;
    }

    public List<Comments> getComments() {
        return comments;
    }

    public void setComments(List<Comments> comments) {
        this.comments = comments;
    }

    public List<CourseVideos> getVideos() {
        return videos;
    }

    public void setVideos(List<CourseVideos> videos) {
        this.videos = videos;
    }

    public List<CourseImages> getImages() {
        return images;
    }

    public void setImages(List<CourseImages> images) {
        this.images = images;
    }

    public void setId(Integer id)
    {
        this.id = id;
    }

    public Integer getId() 
    {
        return id;
    }

    public void setUserId(Integer userId) 
    {
        this.userId = userId;
    }

    public Integer getUserId() 
    {
        return userId;
    }

    public void setTitle(String title) 
    {
        this.title = title;
    }

    public String getTitle() 
    {
        return title;
    }

    public void setDescription(String description) 
    {
        this.description = description;
    }

    public String getDescription() 
    {
        return description;
    }

    public void setScore(Double score)
    {
        this.score = score;
    }

    public Double getScore()
    {
        return score;
    }

    public void setParticipantCount(Integer participantCount)
    {
        this.participantCount = participantCount;
    }

    public Integer getParticipantCount()
    {
        return participantCount;
    }

    public void setTotalDuration(String totalDuration) 
    {
        this.totalDuration = totalDuration;
    }

    public String getTotalDuration() 
    {
        return totalDuration;
    }

    public void setTotalVideos(String totalVideos) 
    {
        this.totalVideos = totalVideos;
    }

    public String getTotalVideos() 
    {
        return totalVideos;
    }

    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getStatus() 
    {
        return status;
    }

    public void setDel(Integer del) 
    {
        this.del = del;
    }

    public Integer getDel() 
    {
        return del;
    }

}
